package com.guli.common.valid.constraintValidator;
/*
 * @Author 罗
 * @date 2020/9/20 - 12:31 下午
 */

import com.guli.common.valid.ListValid;

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import java.lang.annotation.Annotation;
import java.util.HashSet;
import java.util.Set;

/**
 * 配置校验器
 * ConstraintValidator<ListValid, Integer>
 *     ListValid是这个校验器所要校验的注解
 *     Integer 要校验的数据类型
 * */
public class ListValidConstraintValidator implements ConstraintValidator<ListValid, Integer> {


    public static final Set<Integer> SET = new HashSet<>();
    /**
     * 可以从初始化方法中获取注解的详细信息
     * */
    @Override
    public void initialize(ListValid constraintAnnotation) {
        for (int i : constraintAnnotation.value()) {
            SET.add(i);
        }
    }

    /**
     *
     * @param value 此次需要校验的值
     * @param context
     * @return
     */
    @Override
    public boolean isValid(Integer value, ConstraintValidatorContext context) {

        boolean contains = SET.contains(value);

        return contains;
    }
}
